<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // JS是弱类型语言，对于方法参数而言只剩下通过参数位置匹配参数得规则
        function printArg1(arg1,arg2){
            // 处理字符串,通过字符串得length属性获取字符串长度
            console.log(arg1 , arg1.length);
            console.log(arg2 , arg1.length); 
        }

        printArg1("参数1","参数2");
        // printArg1(100,200); // 数值没有长度属性


        // JS存在一个类型获取方法 typeof
        //      写法1 ：typeof 变量
        //      写法2 ：typeof(变量)
        function printArg2(arg1,arg2){
            // console.log( typeof arg1 );
            // console.log( typeof(arg2) );
            // 如果参数是字符串，输出字符串得长度
            if( typeof(arg1)==="string" ){
                console.log(arg1 , arg1.length);
            }
            if( typeof(arg2)==="string" ){
                console.log(arg2 , arg2.length);
            }
            // 如果参数是数值，输出数值得原始值
            if( typeof(arg1)==="number" ){
                console.log(arg1);
            }
            if( typeof(arg2)==="number" ){
                console.log(arg2);
            }
        }
        printArg2("字符串",1000)

        // 位置匹配设计
        // arg1 完成功能1
        // arg2 完成功能2
        // arg3 完成功能3
        function printArg3(arg1,arg2,arg3){
            if(arg1!==undefined){
                console.log("功能1 arg1",arg1);
            }
            if(arg2!==undefined){
                console.log("功能2 arg2",arg2);
            }
            if(arg3!==undefined){
                console.log("功能3 arg3",arg3);
            }
        }

        printArg3("参数1","参数2");

        // 默认参数类型匹配
        //     url 是字符串类型参数
        //     method 是字符串类型参数,调用时可以不用传递,如果没有传递给一个默认值GET
        //     options 对象类型类型参数
        function printArg4(url,method,options){
            if( typeof(method)==="object" ){
                options = method;
                // method = undefined;
                method = "GET";
            }

            console.log("url:",url);
            console.log("method:",method);
            console.log("options:",options);
            
        }

        // let opt = {
        //     a:"对象参数"
        // }
        // printArg4( "地址","POST",opt );
        printArg4( "地址","POST",{ a:"对象参数" } );
        printArg4( "地址",{ a:"对象参数" } );
        
    </script>
</head>
<body>
    
</body>
</html>